//
//  PlayMusic.h
//  音乐播放器
//
//  Created by dllo on 16/3/19.
//  Copyright © 2016年 JokesTeam. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>

@protocol PlayMusicDelegate <NSObject>


@end


#define PLAYMUSIC [PlayMusic shareMusic]

@interface PlayMusic : NSObject

typedef enum {
    playMusicStyeSequenceCirculation = 0, /**< 顺序循环 */
    playMusicStyeSingle = 1, /**< 单曲 */
    playMusicStyeRandom = 2, /**< 随机 */
} PlayMusicStye;
@property (nonatomic) PlayMusicStye playMusicStye;

@property (nonatomic, retain) AVPlayer *avPlayer; // 申明系统播放器属性
@property (nonatomic, retain) AVPlayerItem *avPlayItem; /**< 播放项目 */

@property (nonatomic, retain) AVPlayer *videoPlay; /**< 视频播放 */
@property (nonatomic, retain) AVPlayerLayer *playerLayer; /**< 用于显示播放器 */



@property (nonatomic, assign) id<PlayMusicDelegate>delegate; /**< 声明代理人属性 */
@property (nonatomic, copy) void(^blockPlayMusic)(WXLUrlListModel *, NSString *, NSString *, NSString *, NSString *, BOOL); /**< 该block回传播放信息 */
@property (nonatomic, copy) void(^blockPlayYesOrNo)(BOOL); /**< 该block回传播放状态 */

/**
 *  创建播放器单例
 *
 *  @return play本类对象
 */
+ (PlayMusic *)shareMusic;

/**
 *  将音乐接口放入磁盘
 *
 *  @param avUrl 音乐加载接口
 *  @param duration 音乐时长(单位：s)
 *  @param dex 下标 可为空 
 */
- (void)playMusicWithAvUrl:(NSArray *)avUrls dex:(NSInteger)dex;

/**
 *  开始播放音乐
 */
- (void)startPlay;

/**
 *  暂停播放音乐
 */
- (void)pausePlay;

/**
 *  某一时刻开始播放
 *
 *  @param time 从什么时候开始播放
 */
- (void)seekToTime:(CGFloat)time;

/**
 *  设置播放音量 该方法用于控制音量的初始状态
 *
 *  @return 当前音量值
 */
- (CGFloat)createPlayVolume;

///**
// *  播放进度
// *
// *  @return 返回当前播放到哪
// */
//- (CGFloat)playTime;

/**
 *  下一曲
 */
- (void)downSong;
/**
 *  上一曲
 */
- (void)upSong;
// bof下一首音乐
- (void)playNextMushic;

@property (nonatomic, assign) CGFloat volume; /**< 音量 */




/***************************视频**********************************/
- (void)playMovieFromUrl:(NSString *)url;

- (void)playMV;
- (void)pauseMV;
- (void)seekToTimePalyVideo:(CGFloat)time;

@end
